package top.frsf.autocodegen.service;

import com.baomidou.mybatisplus.extension.service.IService;
import top.frsf.autocodegen.controller.dto.AutoDataSourceAddDTO;
import top.frsf.autocodegen.entity.AutoDatasource;
import top.frsf.autocodegen.entity.AutoTable;
import top.frsf.autocodegen.utils.Result;

import java.sql.SQLException;
import java.util.List;

/**
 * DataSource Service
 *
 * @author FRSF
 * @since 2024/7/25 17:08
 */
public interface IAutoDatasourceService extends IService<AutoDatasource> {

    /**
     * 新增数据源
     *
     * @param dto 数据源信息
     * @return 是否成功
     */
    Result<Boolean> saveDatasource(AutoDataSourceAddDTO dto);


    /**
     * 根据ID获取数据源
     *
     * @param id 数据源ID
     * @return 数据源
     */
    AutoDatasource getDatasourceById(Integer id);

    /**
     * 根据数据源获取表集合
     *
     * @param id 数据源ID
     * @return 表信息
     */
    List<AutoTable> listTableByDatasourceId(Integer id) throws SQLException, ClassNotFoundException;
}
